﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Navigation;
using Gica;

namespace ProyectoGica
{
    public partial class ABMTipoInsumo : Page
    {
        private string strModo;
        private string m_strCodigo;

        public ABMTipoInsumo()
        {
            InitializeComponent();
            cnvTipoInsumo.Visibility = Visibility.Collapsed;
        }

        // Se ejecuta cuando el usuario navega a esta página.
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            TraerTodos();
        }

        private void btnBuscar_Click(object sender, RoutedEventArgs e)
        {
            Traer();
        }

        private void WsTipoInsumoClient_TipoInsumoTraerTodosCompletedEventArgs(object sender, RefWsTipoInsumoTraerTodos.TraerTodosCompletedEventArgs e)
        {
            dgrTipoInsumo.ItemsSource = e.Result;
        }

        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            btnBuscar_Click(null, null);
        }

        private void btnAgregar_Click(object sender, RoutedEventArgs e)
        {
            Deshabilitar();
            strModo = "Agregar";
        }

        private void btnAceptar_Click(object sender, RoutedEventArgs e)
        {
            Habilitar();
            if (strModo == "Agregar")
            {
                AgregarTipoInsumo();
            }
            else
            {
                ModificarTipoInsumo();
            }
            btnBuscar_Click(sender, e);

        }

        private void Deshabilitar()
        {
            cnvTipoInsumo.Visibility = Visibility.Visible;
            btnModificar.IsEnabled = false;
            btnQuitar.IsEnabled = false;
            btnAgregar.IsEnabled = false;
            btnBuscar.IsEnabled = false;

        }

        private void Habilitar()
        {
            btnModificar.IsEnabled = true;
            btnQuitar.IsEnabled = true;
            btnBuscar.IsEnabled = true;
            btnAgregar.IsEnabled = true;
            txtNombreBuscar.IsEnabled = true;
            cnvTipoInsumo.Visibility = Visibility.Collapsed;
        }

        private void AgregarTipoInsumo()
        {
            RefWsTipoInsumoInsertar.WsTipoInsumoInsertarClient objRf = new RefWsTipoInsumoInsertar.WsTipoInsumoInsertarClient();
            objRf.InsertarAsync(txtNombre.Text, txtDescripcion.Text);

        }

        private void ModificarTipoInsumo()
        {
            RefWsTipoInsumoModificar.WsTipoInsumoModificarClient objRf = new RefWsTipoInsumoModificar.WsTipoInsumoModificarClient();
            objRf.ModificarAsync(int.Parse(m_strCodigo), txtNombre.Text, txtDescripcion.Text);
        }

        private void EliminarTipoInsumo()
        {
            RefWsTipoInsumoEliminar.WsTipoInsumoEliminarClient objRf = new RefWsTipoInsumoEliminar.WsTipoInsumoEliminarClient();
            objRf.EliminarAsync(int.Parse(m_strCodigo));
        }

        private void btnModificar_Click(object sender, RoutedEventArgs e)
        {
            if (m_strCodigo != null)
            {
                Deshabilitar();
                strModo = "Modificar";
            }
        }

        private void dgrTipoInsumo_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (dgrTipoInsumo.SelectedItem != null)
            {
                m_strCodigo = ((TextBlock)dgrTipoInsumo.Columns[0].GetCellContent(dgrTipoInsumo.SelectedItem)).Text;
                txtNombre.Text = ((TextBlock)dgrTipoInsumo.Columns[1].GetCellContent(dgrTipoInsumo.SelectedItem)).Text;
                txtDescripcion.Text = ((TextBlock)dgrTipoInsumo.Columns[2].GetCellContent(dgrTipoInsumo.SelectedItem)).Text;
            }

        }

        private void btnQuitar_Click(object sender, RoutedEventArgs e)
        {
            if (dgrTipoInsumo.SelectedItem != null)
            {
                m_strCodigo = ((TextBlock)dgrTipoInsumo.Columns[0].GetCellContent(dgrTipoInsumo.SelectedItem)).Text;
                EliminarTipoInsumo();
                Traer();
            }
        }

        private void btnCancelar_Click(object sender, RoutedEventArgs e)
        {
            Habilitar();
        }

        private void TraerTodos()
        {
            btnBuscar_Click(null, null);
        }

        private void Traer()
        {
            RefWsTipoInsumoTraerTodos.WsTipoInsumoTraerTodosClient objRf = new RefWsTipoInsumoTraerTodos.WsTipoInsumoTraerTodosClient();
            objRf.TraerTodosCompleted += new EventHandler<RefWsTipoInsumoTraerTodos.TraerTodosCompletedEventArgs>(WsTipoInsumoClient_TipoInsumoTraerTodosCompletedEventArgs);
            objRf.TraerTodosAsync(txtNombreBuscar.Text);
        }

    }
}
